The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
Networked data centers managed by independent parties and having large numbers of reconfigurable computer processors, memory and storage—sometimes termed “cloud computing” facilities in which computing resources conceptually reside in an “elastic virtual cloud”—are commercially available from AMAZON, RACKSPACE and others. A user may allocate or deallocate computing resources in an elastic virtual computer cloud by launching and/or destroying virtual computer instances. A virtual computer instance may be launched using a snapshot of a previously configured volume with a basic operating system (“OS”), such as a UNIX distribution. After the virtual computer instance is launched, the user may manually configure the virtual computer instance by logging in to the instance from a client computer and configuring the instance as desired. For example, the user may log in to a launched virtual computer instance and install one or more software packages, setup one or more user profiles, and define one or more networking routes.
Manually launching and configuring virtual computer instances may be time consuming and prone to error. As an alternative, a user may store a snapshot of a virtual computer instance after the user configures the virtual computer instance. After the snapshot is stored, the user may generate and launch a new virtual computer instance from the stored snapshot. Since the new virtual computer instance is generated from the stored snapshot, the user need not configure the new virtual computer instance.
In many cases, however, a user may want to launch a new virtual computer instance that is configured differently from any snapshots that were previously stored. For purposes of illustrating a clear example, assume that a particular software package is installed on a virtual computer instance and a snapshot of the virtual computer instance is stored. Also assume that a new version of the particular software package is released. If the user wants to generate a new virtual computer instance with the new version of the software package, then the user may still have to manually launch and configure a new virtual computer instance with the new version of the software package.